/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.service;

import com.comac.ins.common.mybatis.core.page.PageQuery;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdFluidModelBo;
import com.comac.ins.isfd.domain.vo.IsfdFluidModelVo;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 流体库service层接口
 *
 * 123
 * @date 2024-7-1
 */
public interface IsfdFluidModelService {

    /**
     * 分页列表查询模型库
     *
     * @param isfdFluidModelBo OSS对象存储分页查询对象
     * @param pageQuery   分页查询实体类
     * @return 结果
     */
    TableDataInfo<IsfdFluidModelVo> queryPageList(IsfdFluidModelBo isfdFluidModelBo, PageQuery pageQuery);

    /**
     * 删除模型库
     *
     * @param id     模型库id集合
     * @param isValid 判断是否需要校验
     * @return 结果
     */
    Boolean deleteWithValidByIds(String id, Boolean isValid);

    /**
     * 上传 MultipartFile 到对象存储服务，并保存文件信息到数据库
     *
     * @param isfdFluidModelBo 模型元信息
     * @return 上传成功后的 IsfdCompositeModelVo 对象，包含文件信息
     */
    int save(MultipartFile file,IsfdFluidModelBo isfdFluidModelBo);

    void download(String modelId, HttpServletResponse response) throws IOException;
}
